package zhengqc.list;

public interface List<E> {
    /* 元素查找失败索引 */
    static final int ELEMENT_NOT_FOUND = -1;
    /* 获取列表元素数量 */
    int getSize();
    /* 列表是否为空 */
    boolean isEmpty();
    /* 列表中是否含有指定的元素 */
    boolean contains(E element);
    /* 获取列表指定元素的位置 */
    int indexOf(E element);
    /* 清空列表 */
    void clear();
    /* 在列表的 index 位置添加元素 */
    void add(int index, E element);
    /* 在列表的开始位置添加元素 */
    void addFirst(E element);
    /* 在列表的末尾位置添加元素 */
    void addLast(E element);
    /* 删除列表的 index 位置的元素 */
    E remove(int index);
    /* 删除列表开始位置的元素 */
    E removeFirst();
    /* 删除列表末尾位置的元素 */
    E removeLast();
    /* 设置列表 index 位置的元素 */
    void set(int index, E element);
    /* 设置列表开始位置的元素 */
    void setFirst(E element);
    /* 设置列表末尾位置的元素 */
    void setLast(E element);
    /* 获取列表 index 位置的元素 */
    E get(int index);
    /* 获取列表开始位置的元素 */
    E getFirst();
    /* 获取列表末尾位置的元素 */
    E getLast();
    /* 列表转数组 */
    E[] toArray();
}
